package com.vhall.component.entity.redpacket.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
public class RedPacketRspVO {


    /**
     * 红包ID（主键）
     */
    @JsonProperty("red_packet_id")
    private Long redPacketId;

    /**
     * 红包唯一标识ID，对外暴露接口使用这个字段
     */
    @JsonProperty("red_packet_uuid")
    private String redPacketUuid;

    /**
     * PaaS应用ID
     */
    @JsonProperty("app_id")
    private String appId;

    /**
     * 创建红包的第三方用户ID
     */
    @JsonProperty("third_party_user_id")
    private String thirdPartyUserId;

    /**
     * 第三方业务系统中的来源ID，用来统计数据用
     */
    @JsonProperty("source_id")
    private String sourceId;

    /**
     * 红包类型：0 随机金额红包（默认），1 均分金额红包
     */
    private Integer type;

    /**
     * 发送表情类型：1.红包，2.礼品
     */
    @JsonProperty("gift_type")
    private Integer giftType;

    /**
     * 红包描述信息
     */
    private String describe;

    /**
     * 红包数量
     */
    private Integer number;

    /**
     * 红包金额
     */
    private BigDecimal amount;

    /**
     * 红包领取条件：0=无限制参与 1=分享参与 2=口令参会 3=填写问卷参与 4=邀请人数
     */
    private Integer condition;

    /**
     * conditions:4 邀请人数
     */
    @JsonProperty("invite_num")
    private Integer inviteNum;

    /**
     * 红包口令密码，当condition为2时，此字段必填
     */
    private String password;

    /**
     * 推送消息下发的频道
     */
    @JsonProperty("push_channel")
    private String pushChannel;

    /**
     * 红包开始时间
     */

    @JsonProperty("start_time")
    private LocalDateTime startTime;

    /**
     * 退款状态:
     * 0 未退款
     * 1 已退款
     * 2 退款失败
     */
    @JsonProperty("refund_status")
    private Integer refundStatus;

    /**
     * 领取金额
     */
    @JsonProperty("get_amount")
    private BigDecimal getAmount;

    /**
     * 在线人数
     */
    @JsonProperty("online_user_count")
    private Integer onlineUserCount;

    /**
     * 领取人数
     */
    @JsonProperty("get_user_count")
    private Integer getUserCount;

    /**
     * 参与人数
     */
    @JsonProperty("joined_user_count")
    private Integer joinedUserCount;

    /**
     * 红包支付状态：0 等待支付 1 支付成功 2 支付失败
     */
    @JsonProperty("pay_status")
    private Integer payStatus;

    /**
     * 支付渠道：1.微信，2.支付宝，3.余额支付，0.其他
     */
    @JsonProperty("pay_channel")
    private Boolean payChannel;

    /**
     * 红包支付交易流水号
     */
    @JsonProperty("trade_no")
    private String tradeNo;

    /**
     * 扩展字段
     */
    private String ext;

    /**
     * 是否已删除 0 表示未删除 1 表示已删除
     */
    private Integer deleted;

    /**
     * 创建时间
     */
    @JsonProperty("created_at")
    private LocalDateTime createdAt;

    /**
     * 删除时间
     */
    @JsonProperty("deleted_at")
    private LocalDateTime deletedAt;

    /**
     * 更新时间
     */
    @JsonProperty("updated_at")
    private LocalDateTime updatedAt;
}
